1. Field of the Invention
The field of the invention relates to methods and systems for comparing goods or services from websites, databases or other on-line resources. The field of the invention includes related servers, user terminals and computer program products.
2. Technical Background
Here is some background on multi-objective optimization. Multi-objective optimization is an area of multiple criteria decision making that is concerned with mathematical optimization problems involving more than one objective function (or attribute) to be optimized simultaneously; improving one objective leads to a deterioration in one or more other objectives.
For example, when buying airline flights over the internet between specific origin and destinations, objectives could, in an implementation of this invention, include each and any of the following objectives: lowest price; shortest travel time; fewest stop-overs; departure times; arrival time; punctuality; risk of flight cancellation by the airline; whether a day or a night flight; highest quality airline; upgrade availability; upgrade price; seat comfort; wi-fi; lounge access; infotainment quality; loyalty program rewards; aircraft type; aircraft age; crowd-sourced ratings for the airline; crowd-sourced ratings for the specific flight or aspects of the flight; family friendliness; specific airport, where multiple airports serve the same origin and/or destination; brand compatibility.
As noted above, improving one objective leads to a deterioration in one or more other objectives. For example, improving the price objective can be obtained by deteriorating the shortest travel time objective (and indeed other objectives). Improving the upgrade price objective might be obtained at the cost of deteriorating the airline quality objective.
So when selecting flights, there is rarely a single solution that simultaneously optimizes all objectives; instead, customers might explicitly explore those objectives of most value to them (if they have time) but the challenge is that the sheer number of flight options is so great that choice can be bewildering and confidence that one has discovered the optimal flight can be elusive; this lack of confidence in identifying the flight that is ‘best’ for you can inhibit purchasing entirely—that is clearly frustrating to both potential customer and airline/flight broker etc. Applying a multi-objective optimization approach to the problem of identifying a small set of possible ‘best’ solutions (for example, 1, or 2, or 3 or 4 or 5 or 6, perhaps up to 10, different flights all of which are ‘best’ (e.g. that define the Pareto optimal front) is an effective solution to this dilemma.
Another advantage of this approach is that it is readily possible to in effect discard these ‘best’ solutions and then identify the next ‘best’ set of solutions (so for example the system could identify the top 10 ‘best’ solutions using multi-objective optimization and solely display those flights, and not display at all the hundreds of other flights that might match the base criteria of origin/destination and dates. This limits the potential for customer bewilderment. If the customer cannot see the perfect flight in that list of the machine selected top 10, then he can ask for the next ‘best’ top 10 to be shown—the initial ten best are in effect discarded and the next top best, again located using a multi-objective optimization algorithm, are then shown.
Maintaining satisfied customers is a complex process of balancing competing objectives to yield potential flights that the customer will perceive as being optimal; these objectives are both wholly independent of the customer (e.g. price) and personal to the customer—for example, some customers place a very considerable weight on crowd-sourced reviews, others place no reliance at all on this objective; machine learning systems can profile individual customers to weight these objectives accordingly—for example, if the machine learning system determines that a customer actively Tweets about her travel experience, and has posted many TripAdvisor reviews, then the system would weight crowd-sourced aspects more highly than for the person with no on-line profile. If we take the ‘brand-compatibility’ objective, then a machine learning system could take the demographic profile of the customer (e.g. 25 year old urban male, working in the creative industries, extensive and rich on-line presence) and map that to the airline that is most compatible with that demographic profile.
Objectives can also be more broadly defined where a semantic engine can parse unstructured (e.g. free-text/free-speech) input for example, if a user inputs the search query “flights for a week somewhere with brilliant snow right now”, then the objectives will include current snow conditions in ski resorts, and predicted snow conditions over the coming week.
Other aspects of the user's query may help define the quality metric, for example the free text “cheap flights to New York” implies increased flight price sensitivity, and a trip not spending Saturday at the destination may imply that it is for business purposes.
The same multi-factorial complexity applies to many other situations where goods or services are to be purchased—especially where the purchase is over the internet for example, if shopping for a shirt on-line, objectives could include any or all of: design; price; manufacturer's brand; retailer's brand; perceived quality of the shirt; fitting/sizing compatibility; fitting/sizing familiarity; ease of completing transaction; returns policy; loyalty scheme rewards.
Another example is the purchase of electronics, such as a projector. Attributes such as user and professional review ratings, resolution, brightness, contrast, guarantee, and underlying technology must be traded off against price in order to make an optimal decision.
In the selection of a hotel (or other accommodation), the quality of a particular option may be a function of user ratings, hotel stars, proximity to a desired location (e.g. for a meeting, or sightseeing), popularity/purchase rate, hotel chain brand value, hotel facilities, room facilities/type.
In the selection of a car rental, the parameters for ranking may include: vehicle type, location of pick-up and drop-off points, number of seats, fuel efficiency, extras (sat nav, free tank of fuel, child seat), rental company brand, vehicle features (manual/automatic, air conditioning).
For the selection of a package holiday (dynamic, or pre-composed) the number of parameters increases still further, and may include all those listed above for flights, accommodation, and car rentals, but include others specific to packages such as transfers, tours, inclusive meals, etc.
Multi-objective optimization is also known as multi-objective programming, vector optimization, multicriteria optimization, multiattribute optimization or Pareto optimization. Multi-objective optimization has been applied in many fields of science, including engineering, economics and logistics where optimal decisions need to be taken in the presence trade-offs between two or more conflicting objectives. But the application of this kind of optimization to the area of identifying different goods and services, made available on-line from multiple competing websites, has not been widely explored.
The above-described steps can be implemented using standard well-known programming techniques.
Another aspect of the invention is a computer implemented system and apparatus for comparing goods and/or services from one or more websites or other on-line resource(s) in which one or more processors are programmed to implement a multi-objective optimization process that is used to identify a set of specific goods and/or services that optimally match user-defined and/or user-associated criteria and then data defining that set of specific goods and/or services is sent from a server and then displayed on an end-user's computing device to enable the end-user to view that set and optionally purchase one or more items from that set.
The novelty of the above-described embodiments lies not in the specific programming techniques but in the use of the steps described to achieve the described results.
Software programming code which embodies the present invention is typically stored in permanent storage. In a client/server environment, such software programming code may be stored with storage associated with a server. The software programming code may be embodied on any of a variety of known media for use with a data processing system, such as a diskette, or hard drive, or CD ROM. The code may be distributed on such media, or may be distributed to users from the memory or storage of one computer system over a network of some type to other computer systems for use by users of such other systems. The techniques and methods for embodying software program code on physical media and/or distributing software code via networks are well known and will not be further discussed herein.
It will be understood that each element of the illustrations, and combinations of elements in the illustrations, can be implemented by general and/or special purpose hardware-based systems that perform the specified functions or steps, or by combinations of general and/or special-purpose hardware and computer instructions.
These program instructions may be provided to a processor to produce a machine, such that the instructions that execute on the processor create means for implementing the functions specified in the illustrations. The computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer-implemented process such that the instructions that execute on the processor provide steps for implementing the functions specified in the illustrations. Accordingly, the Figures and discussion thereof support combinations of means for performing the specified functions, combinations of steps for performing the specified functions, and program instruction means for performing the specified functions.
While there has been described herein the principles of the invention, it is to be understood by those skilled in the art that this description is made only by way of example and not as a limitation to the scope of the invention. Accordingly, it is intended by the appended claims, to cover all modifications of the invention which fall within the true spirit and scope of the invention.
The following patent application disclosures are incorporated by reference: PCT/GB2014/052846, PCT/GB2013/053261, EP 2088544 and U.S. application Ser. No. 14/103,016.
By way of example in the context of airfare flight pricing, flight pricing is conventionally obtained from a Global Distribution System (GDS). Flight comparison services, such as Skyscanner, and some airlines, pay a fee to obtain live, bookable prices from a GDS; these prices are the actual bookable prices that a potential passenger can book.
3. Discussion of Related Art
EP2395726B1 discloses a method and system for reducing protocol headers sent over a wireless network. The method includes receiving at a proxy server, from a mobile device, a protocol request device addressed to a remote system. The protocol request including defined headers and an enable-caching indicator. The proxy server stores at least one of the defined headers as cached headers and sends a protocol response to the mobile device identifying the cached headers. Subsequent requests from the mobile device are formatted as abridged requests that exclude the cached headers, thereby reducing the data transmitted. The proxy server adds the cached headers to the abridged requests before forwarding them as unabridged requests to the remote system.
EP1326406B1 improves the performance of distributed systems by reducing the amount of graphical data transmitted between an application server and a thin client. The invention provides a method and apparatus for efficiently reducing the amount of graphical data transmitted from a server to a client via a communications network, the method comprising the steps of: separating a path into a plurality of strips, each of the plurality of strips having a strip length and an absolute angle associated therewith; determining a quantized angle associated with the absolute angle for each of the plurality of strips; forming a protocol stream at the server, the protocol stream including a beginning coordinate of the path and the strip length and an indicia of the quantized angle of each of the plurality of strips; and transmitting the protocol stream from the server to the client via the communications network.